An Eecient Abstract Machine for Curry
نویسندگان
چکیده
The functional logic programming language Curry integrates features from functional logic and concurrent programming It combines lazy evaluation higher order functions logic variables partial data struc tures built in search and the concurrent evaluation of equational con straints Curry amalgamates the most important operational principles developed in the area of integrated functional logic languages residua tion and narrowing The e ects of non determinism stemming from the narrowing semantics can be encapsulated using the primitive try oper ator This is necessary to implement declarative I O in the presence of non deterministic computations and allows to implement di erent search strategies In the present paper we develop an abstract machine for the implemen tation of Curry The focus in this paper will be on the e cient imple mentation of encapsulated search in a lazy functional logic language
منابع مشابه
An Abstract Machine for Curry and Its Concurrent Implementation in Java
Curry is a multi-paradigm declarative language aiming to amalgamate functional, logic, and concurrent programming paradigms. Curry combines in a seamless way features from functional programming and (concurrent) logic programming. Curry’s operational semantics is based on the combination of lazy reduction of expressions together with a possibly non-deterministic binding of free variables occurr...
متن کاملEecient Strictness Analysis of Haskell in Haskell Using Abstract Reduction
The extraction of strictness information marks an indispensable element of an eecient compilation of lazy functional languages like Haskell. Based on the method of abstract reduction we have developed an eecient strictness analyser for a core language of Haskell. It is completely written in Haskell and compares favourably with known implementations. The implementation is based on the G #-machin...
متن کاملFunctions as processes: termination and the λ̄μμ̃-calculus
The λ̄μμ̃-calculus is a variant of the λ-calculus with significant differences, including non-confluence and a Curry-Howard isomorphism with the classical sequent calculus. We present an encoding of the λ̄μμ̃-calculus into the π-calculus. We establish the operational correctness of the encoding, and then we extract from it an abstract machine for the λ̄μμ̃-calculus. We prove that there is a tight rel...
متن کاملA Calculus for Interaction Nets Based on the Linear Chemical Abstract Machine
Interaction nets are graph rewriting systems which are a generalisation of proof nets for classical linear logic. The linear chemical abstract machine (CHAM) is a term rewriting system which corresponds to classical linear logic, via the Curry-Howard isomorphism. We can obtain a textual calculus for interaction nets which is surprisingly similar to linear CHAM based on the multiplicative fragme...
متن کاملAn Implementation Model of the Typed -calculus Based on Linear Chemical Abstract Machine
Abramsky's Linear Chemical Abstract Machine is a term calculus which corresponds to Linear Logic, via the Curry-Howard iso-morphism. We show that the typed-calculus is embedded into Linear Chemical Abstract Machine by Girard's embedding of Intuitionistic Logic into Linear Logic. Then we extend our result to a simple functional programming language obtained from the typed-calculus by adding cons...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007